package com.ofsoft.weixin.mp.api;

/**
 * 消息群发接口
 * 
 * @author OF
 * @date 2018年07月21日
 */
public class MessageApi extends ApiBase {
	private static String sendAllUrl = "https://api.weixin.qq.com/cgi-bin/message/mass/sendall?access_token=";

	/**
	 * 根据标签进行群发【订阅号与服务号认证后均可用】
	 * 
	 * @param json
	 *            json字符串
	 * @return ApiResponse
	 */
	public static ApiResponse sendAll(String json) {
		return sendPost(sendAllUrl + AccessTokenConfig.getAccessToken(), json);
	}

	private static String sendUrl = "https://api.weixin.qq.com/cgi-bin/message/mass/send?access_token=";

	/**
	 * 根据OpenID列表群发【订阅号不可用，服务号认证后可用】
	 * 
	 * @param json
	 *            json字符串
	 * @return ApiResponse
	 */
	public static ApiResponse send(String json) {
		return sendPost(sendUrl + AccessTokenConfig.getAccessToken(), json);
	}

	private static String deleteUrl = "https://api.weixin.qq.com/cgi-bin/message/mass/delete?access_token=";

	/**
	 * 删除群发【订阅号与服务号认证后均可用】
	 * 
	 * @param msgId
	 *            消息编号
	 * @return ApiResponse
	 */
	public static ApiResponse delete(String msgId) {
		return sendPost(deleteUrl + AccessTokenConfig.getAccessToken(),
				ApiRequest.create("msg_id", msgId));
	}

	private static String previewUrl = "https://api.weixin.qq.com/cgi-bin/message/mass/preview?access_token=";

	/**
	 * 预览接口【订阅号与服务号认证后均可用】
	 * 
	 * @param json
	 *            json字符串
	 * @return ApiResponse
	 */
	public static ApiResponse preview(String json) {
		return sendPost(previewUrl + AccessTokenConfig.getAccessToken(), json);
	}

	private static String getUrl = "https://api.weixin.qq.com/cgi-bin/message/get/preview?access_token=";

	/**
	 * 查询群发消息发送状态【订阅号与服务号认证后均可用】
	 * 
	 * @param msgId
	 *            消息编号
	 * @return ApiResponse
	 */
	public static ApiResponse get(String msgId) {
		return sendPost(getUrl + AccessTokenConfig.getAccessToken(),
				ApiRequest.create("msg_id", msgId));
	}
}
